// 创建通知服务 utils/notification.js
import {
  isPermissionGranted,
  requestPermission,
  sendNotification,
} from '@tauri-apps/plugin-notification';

let permissionGranted = null;

export const notificationService = {
  // 初始化权限检查
  async init() {
    permissionGranted = await isPermissionGranted();
  },

  // 发送通知（自动处理权限）
  /**
   * @param {object} obj - 通知对象，包含 title 和 body 属性
   * @param {string} obj.title - 通知标题
   * @param {string} obj.body - 通知内容
   * */
  async send(obj) {
    // 如果权限状态未知，检查权限
    if (permissionGranted === null) {
      permissionGranted = await isPermissionGranted();
    }

    // 如果没有权限，请求权限
    if (!permissionGranted) {
      const permission = await requestPermission();
      permissionGranted = permission === 'granted';
    }

    // 发送通知
    if (permissionGranted) {
      sendNotification(obj);
    }
  }
};
